package com.study.spark.scala.chapter07

import scala.collection.mutable.ArrayBuffer

object Scala04_Collection_3{
  def main(args: Array[String]): Unit = {
    // TODO 集合 - 功能函数 -分组
    // 根据指定规则对每一条数据进行分组
    val array = ArrayBuffer(1,2,3,4)

    // TODO 将集合元素按照奇偶数分组
    // 方式一：完整版
    println(array.groupBy(
      num => {
        if (num % 2 == 0) {
          "偶数"
        } else {
          "奇数"
        }
      }
    ))//Map(奇数 -> ArrayBuffer(1, 3), 偶数 -> ArrayBuffer(2, 4))

    // 方式二：不关心分组名称，使用至简原则
    println(array.groupBy(_ % 2))//Map(1 -> ArrayBuffer(1, 3), 0 -> ArrayBuffer(2, 4))

    // TODO 将集合元素首字母相同的分为一组
    val str = ArrayBuffer("Hello","Scala","Hadoop","Spark")
    println(str.groupBy(_.substring(0, 1)))
    //Map(S -> ArrayBuffer(Scala, Spark), H -> ArrayBuffer(Hello, Hadoop))

  }
}
